package com.eliaukjq.jihe;


import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

/**
 * @Author : 佩萁
 * Description :
 * @Create : 2024/7/13 - 20:56
 */

public class EmployeeComparator{
    public static void main(String[] args) {
        Set<Employee1> set =
                new TreeSet<>(new Employee1NameComparator());
        Employee1 employee1 = new Employee1("Tom", 15);
        Employee1 employee3 = new Employee1("Jack", 16);
        Employee1 employee2 = new Employee1("Mike", 26);
        set.add(employee1);
        set.add(employee2);
        set.add(employee3);
        for (Employee1 e : set)
            System.out.println(e.getName() + " " + e.getAge());
    }
}

/**
 * 员工类，代表一个员工。
 * 包含姓名和年龄两个属性。
 */
class Employee1 {
    private String name;
    private Integer age;

    /**
     * 构造函数，初始化员工的姓名和年龄。
     * @param name 员工姓名
     * @param age 员工年龄
     */
    public Employee1(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取员工的姓名。
     * @return 姓名
     */
    public String getName() {
        return name;
    }

    /**
     * 设置员工的姓名。
     * @param name 新的姓名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取员工的年龄。
     * @return 年龄
     */
    public Integer getAge() {
        return age;
    }

    /**
     * 设置员工的年龄。
     * @param age 新的年龄
     */
    public void setAge(Integer age) {
        this.age = age;
    }
}

/**
 * Employee1比较器类，实现Comparator接口，用于根据员工的姓名对Employee1对象进行排序。
 */
class Employee1NameComparator implements Comparator<Employee1> {
    /**
     * 比较两个Employee1对象的姓名。
     * @param c1 第一个Employee对象
     * @param c2 第二个Employee对象
     * @return 姓名比较的结果
     */
    @Override
    public int compare(Employee1 c1, Employee1 c2) {
        return c1.getName().compareTo(c2.getName());
    }
}
